//-------------------------------------------------------------------------------//
//                   TEST AUTOMATION TOOL : LICENSE                              //
//-------------------------------------------------------------------------------//
// This file is part of Test Automation Tool.                                    //
// Test Automation Tool is free software: you can redistribute it and/or modify  //
// it under the terms of the GNU General Public License as published by          //
// the Free Software Foundation, either version 3 of the License, or             //
// (at your option) any later version.                                           //
//                                                                               //
// Test Automation Tool is distributed in the hope that it will be useful,       //
// but WITHOUT ANY WARRANTY; without even the implied warranty of                //
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the                  //
// GNU General Public License for more details.                                  //
//                                                                               //
// You should have received a copy of the GNU General Public License             //
// along with Test Automation Tool. If not, see <http://www.gnu.org/licenses/>.  //
//                                                                               //
// This license doesn't force you to put any kind of banner or logo telling      //
// that you are using Test Automation Tool in your project but we would          //
// appreciate if you do so or, at least, if you let us know about that.          //
//                                                                               //
// Enjoy!                                                                        //
//                                                                               //
// Kinesis Team                                                                  //
//-------------------------------------------------------------------------------//

#ifndef __TATSPLASHSCREEN__
#define __TATSPLASHSCREEN__

#include "SplashScreen/SplashScreen.h"

#include <wx/timer.h>

namespace Kinesis
{
namespace TestAutomationTool
{
namespace UI
{

/// <summary>
/// Frame that shows the application title along some logos during a short period of time before the application starts.
/// </summary>
class TATSplashScreen : public SplashScreenBase
{
    // CONSTANTS
    // ---------------
protected:

    /// <summary>
	/// The ammount of time the splash screen is to be shown in the screen, in milliseconds.
	/// </summary>
    static const int VISIBILITY_INTERVAL;


	// CONSTRUCTORS
	// ---------------
public:

	/// <summary>
	/// Constructor that receives a parent window reference.
	/// </summary>
    /// <param name="wnd">A parent window. Should be null for now.</param>
	TATSplashScreen(wxWindow *wnd);


	// DESTRUCTOR
	// ---------------
public:

	/// <summary>
	/// Destructor.
	/// </summary>
	virtual ~TATSplashScreen();


	// METHODS
	// ---------------
public:


    // EVENT HANDLERS
	// ---------------
public:

    /// <summary>
	/// Event handler called when the window is to be closed.
	/// </summary>
    /// <param name="event">The event argument.</param>
    virtual void OnFrameClose( wxCloseEvent& event );

    /// <summary>
	/// Event handler called when the timer activates.
	/// </summary>
    /// <param name="event">The event argument.</param>
    virtual void OnTimerTick( wxTimerEvent& event );


	// PROPERTIES
	// ---------------
public:


	// ATTRIBUTES
	// ---------------
protected:

    /// <summary>
	/// A timer object to be used for closing the window after some time.
	/// </summary>
    wxTimer m_timer;

};

} //namespace UI
} //namespace TestAutomationTool
} //namespace Kinesis

#endif // __TATSPLASHSCREEN__
